<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    //  function add(a){
    //     return function(b){
    //         return function(c){
    //             return function(){  // 新增最后一层 => 没有参数,也可以直接获取数据和求和
    //                 return a + b + c;
    //             }
    //         }
    //     }
    // }
    // var res = add(1)(2)(3)();
    // console.log(res);

    // function fn(){
    //     console.log(11111);
    //     fn();
    // }

    // (function(){
    //     // console.log(arguments);
    //     console.log(1111111);
    //     arguments.callee();  // arguments.callee属性 => 指向函数本身  (可以通过此属性 在匿名函数中调用自己)
    // })()


    function fn() {
        var _args = []; // 用于存放所有参数(闭包)
        return function () { // 1, 2
            console.log(arguments); // [1]
            _args.push(...arguments); // Array.prototype.push.apply(_args,arguments);
            if(arguments.length == 0){  // 没有参数 最后
                console.log("最后一层",_args);
                // 求和 => 需要执行的内容 => 后续可以改为回调函数, 用户根据自己的需要传入
                var sum = 0;
                for(var i=0;i<_args.length;i++){
                    sum += _args[i];
                }
                return sum;
            }
            return arguments.callee;
        }
    }

    var add = fn();
    console.log(add);

    // var result = add(1)(2)(3)(4)(5)(6)();
    var result = add(1,2,3)(4,5,6)();
    console.log(result);

    // add(1)(2)(3)(4)(5)


</script>

</html>